package mysql8学习.高级.第07章_InnoDB数据存储结构存储;

/**
 * 为什么要有区
 * B+树的每一层中的页都会形成一个双向链表，
 * 如果是以页为单位来分配存储空间的话，双向链表相邻的两个页之间的物理位置可能离得非常远。
 * 我们介绍 B+ 树索引的适用场景的时候特别提到范围查询只需要定位到最左边的记录和最右边的记录，
 * 然后沿着双向链表一直扫描就可以了，而如果链表中相邻的两个页物理位置离得非常远，就是所谓的随机I/O。
 * 再一次强调，磁盘的速度和内存的速度差了好几个数量级，随机I/O是非常慢的,
 * 所以我们应该尽量让链表中相邻的页的物理位置也相邻,这样进行范围查询的时候才可以使用所谓的顺序I/O。
 *
 * 引入区的概念，一个区就是在物理位置上连续的64个页。
 * 因为InnoDB中的页大小默认是16KB.所以一个区的大小是 64 * 16KB = 1MB。
 * 在表中数据量大的时候，为某个索引分配空间的时候就不再按照页为单位分配了而是按照区为单位分配，
 * 甚至在表中的数据特别多的时候，可以一次性分配多个连续的区。
 * 虽然可能造成一点点空间的浪费(数据不足以填充满整个区)，
 * 但是从性能角度看，可以消除很多的随机 I/O，功大于过 !
 *
 */
public class E_页之上的区 {
}
